<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Eigen: Eigen::HouseholderSequence&lt; VectorsType, CoeffsType, Side &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="eigendoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Eigen_Silly_Professor_64x64.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://eigen.tuxfamily.org">Eigen</a>
   &#160;<span id="projectnumber">3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.svg"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classEigen_1_1HouseholderSequence.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classEigen_1_1HouseholderSequence-members.html">List of all members</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Eigen::HouseholderSequence&lt; VectorsType, CoeffsType, Side &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__DenseMatrixManipulation__chapter.html">Dense matrix and array manipulation</a> &raquo; <a class="el" href="group__DenseMatrixManipulation__Reference.html">Reference</a> &raquo; <a class="el" href="group__Householder__Module.html">Householder module</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename VectorsType, typename CoeffsType, int Side&gt;<br />
class Eigen::HouseholderSequence&lt; VectorsType, CoeffsType, Side &gt;</h3>

<p>Sequence of Householder reflections acting on subspaces with decreasing size. </p>
<p>This is defined in the Householder module.</p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;Eigen/Householder&gt;</span> </div>
</div><!-- fragment --><dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">VectorsType</td><td>type of matrix containing the Householder vectors </td></tr>
    <tr><td class="paramname">CoeffsType</td><td>type of vector containing the Householder coefficients </td></tr>
    <tr><td class="paramname">Side</td><td>either OnTheLeft (the default) or OnTheRight</td></tr>
  </table>
  </dd>
</dl>
<p>This class represents a product sequence of Householder reflections where the first Householder reflection acts on the whole space, the second Householder reflection leaves the one-dimensional subspace spanned by the first unit vector invariant, the third Householder reflection leaves the two-dimensional subspace spanned by the first two unit vectors invariant, and so on up to the last reflection which leaves all but one dimensions invariant and acts only on the last dimension. Such sequences of Householder reflections are used in several algorithms to zero out certain parts of a matrix. Indeed, the methods <a class="el" href="classEigen_1_1HessenbergDecomposition.html#a89702bceeb4b3d4ebedeb62d4f3e224b" title="Reconstructs the orthogonal matrix Q in the decomposition.">HessenbergDecomposition::matrixQ()</a>, <a class="el" href="classEigen_1_1Tridiagonalization.html#ad5c279c97cee574215ba3f3037e9fbbc" title="Returns the unitary matrix Q in the decomposition.">Tridiagonalization::matrixQ()</a>, <a class="el" href="classEigen_1_1HouseholderQR.html#a89bc9bbb69d140898c5f5e8de11f8066">HouseholderQR::householderQ()</a>, and <a class="el" href="classEigen_1_1ColPivHouseholderQR.html#a28ab9d8916ca609c5469c4c192fbfa28">ColPivHouseholderQR::householderQ()</a> all return a HouseholderSequence.</p>
<p>More precisely, the class HouseholderSequence represents an \( n \times n \) matrix \( H \) of the form \( H = \prod_{i=0}^{n-1} H_i \) where the i-th Householder reflection is \( H_i = I - h_i v_i v_i^* \). The i-th Householder coefficient \( h_i \) is a scalar and the i-th Householder vector \( v_i \) is a vector of the form </p><p class="formulaDsp">
\[ v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ]. \]
</p>
<p> The last \( n-i \) entries of \( v_i \) are called the essential part of the Householder vector.</p>
<p>Typical usages are listed below, where H is a <a class="el" href="classEigen_1_1HouseholderSequence.html" title="Sequence of Householder reflections acting on subspaces with decreasing size.">HouseholderSequence</a>: </p><div class="fragment"><div class="line">A.applyOnTheRight(H);             <span class="comment">// A = A * H</span></div>
<div class="line">A.applyOnTheLeft(H);              <span class="comment">// A = H * A</span></div>
<div class="line">A.applyOnTheRight(H.adjoint());   <span class="comment">// A = A * H^*</span></div>
<div class="line">A.applyOnTheLeft(H.adjoint());    <span class="comment">// A = H^* * A</span></div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#ga99b41a69f0bf64eadb63a97f357ab412">MatrixXd</a> Q = H;                   <span class="comment">// conversion to a dense matrix</span></div>
<div class="ttc" id="agroup__matrixtypedefs_html_ga99b41a69f0bf64eadb63a97f357ab412"><div class="ttname"><a href="group__matrixtypedefs.html#ga99b41a69f0bf64eadb63a97f357ab412">Eigen::MatrixXd</a></div><div class="ttdeci">Matrix&lt; double, Dynamic, Dynamic &gt; MatrixXd</div><div class="ttdoc">Dynamic×Dynamic matrix of type double.</div><div class="ttdef"><b>Definition:</b> Matrix.h:501</div></div>
</div><!-- fragment --><p> In addition to the adjoint, you can also apply the inverse (=adjoint), the transpose, and the conjugate operators.</p>
<p>See the documentation for <a class="el" href="classEigen_1_1HouseholderSequence.html#af6aeede87ed8dac452f4fa8b4f45c3f2" title="Constructor.">HouseholderSequence(const VectorsType&amp;, const CoeffsType&amp;)</a> for an example.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1MatrixBase.html#a3a08ad41e81d8ad4a37b5d5c7490e765">MatrixBase::applyOnTheLeft()</a>, <a class="el" href="classEigen_1_1MatrixBase.html#a45d91752925d2757fc8058a293b15462">MatrixBase::applyOnTheRight()</a> </dd></dl>
</div><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Eigen::HouseholderSequence&lt; VectorsType, CoeffsType, Side &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classEigen_1_1HouseholderSequence__inherit__graph.png" border="0" usemap="#aEigen_1_1HouseholderSequence_3_01VectorsType_00_01CoeffsType_00_01Side_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="aEigen_1_1HouseholderSequence_3_01VectorsType_00_01CoeffsType_00_01Side_01_4_inherit__map" id="aEigen_1_1HouseholderSequence_3_01VectorsType_00_01CoeffsType_00_01Side_01_4_inherit__map">
<area shape="rect" title="Sequence of Householder reflections acting on subspaces with decreasing size." alt="" coords="30,321,225,663"/>
<area shape="rect" href="structEigen_1_1EigenBase.html" title=" " alt="" coords="5,5,249,273"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:af3967dc6ea7a3671224a4b4a9776a329"><td class="memItemLeft" align="right" valign="top"><a id="af3967dc6ea7a3671224a4b4a9776a329"></a>
<a class="el" href="classEigen_1_1HouseholderSequence.html">AdjointReturnType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#af3967dc6ea7a3671224a4b4a9776a329">adjoint</a> () const</td></tr>
<tr class="memdesc:af3967dc6ea7a3671224a4b4a9776a329"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adjoint (conjugate transpose) of the Householder sequence. <br /></td></tr>
<tr class="separator:af3967dc6ea7a3671224a4b4a9776a329"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35475457c973a66539417b61449cbf5a"><td class="memItemLeft" align="right" valign="top">EIGEN_CONSTEXPR <a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#a35475457c973a66539417b61449cbf5a">cols</a> () const EIGEN_NOEXCEPT</td></tr>
<tr class="memdesc:a35475457c973a66539417b61449cbf5a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of columns of transformation viewed as a matrix.  <a href="classEigen_1_1HouseholderSequence.html#a35475457c973a66539417b61449cbf5a">More...</a><br /></td></tr>
<tr class="separator:a35475457c973a66539417b61449cbf5a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac71fa85a4f177b0aeb1026752aea5590"><td class="memItemLeft" align="right" valign="top"><a id="ac71fa85a4f177b0aeb1026752aea5590"></a>
<a class="el" href="classEigen_1_1HouseholderSequence.html">ConjugateReturnType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#ac71fa85a4f177b0aeb1026752aea5590">conjugate</a> () const</td></tr>
<tr class="memdesc:ac71fa85a4f177b0aeb1026752aea5590"><td class="mdescLeft">&#160;</td><td class="mdescRight">Complex conjugate of the Householder sequence. <br /></td></tr>
<tr class="separator:ac71fa85a4f177b0aeb1026752aea5590"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97f91bb6def2ce1a84e44df2360021ab"><td class="memTemplParams" colspan="2">template&lt;bool Cond&gt; </td></tr>
<tr class="memitem:a97f91bb6def2ce1a84e44df2360021ab"><td class="memTemplItemLeft" align="right" valign="top">std::conditional_t&lt; Cond, <a class="el" href="classEigen_1_1HouseholderSequence.html">ConjugateReturnType</a>, <a class="el" href="classEigen_1_1HouseholderSequence.html">ConstHouseholderSequence</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#a97f91bb6def2ce1a84e44df2360021ab">conjugateIf</a> () const</td></tr>
<tr class="separator:a97f91bb6def2ce1a84e44df2360021ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac91cf37b0cbea9e504c89e021fd289ba"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classEigen_1_1Block.html">EssentialVectorType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#ac91cf37b0cbea9e504c89e021fd289ba">essentialVector</a> (<a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a> k) const</td></tr>
<tr class="memdesc:ac91cf37b0cbea9e504c89e021fd289ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Essential part of a Householder vector.  <a href="classEigen_1_1HouseholderSequence.html#ac91cf37b0cbea9e504c89e021fd289ba">More...</a><br /></td></tr>
<tr class="separator:ac91cf37b0cbea9e504c89e021fd289ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4b1b93fff4d5c79342974d9d2a9eec8"><td class="memItemLeft" align="right" valign="top"><a id="aa4b1b93fff4d5c79342974d9d2a9eec8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#aa4b1b93fff4d5c79342974d9d2a9eec8">HouseholderSequence</a> (const <a class="el" href="classEigen_1_1HouseholderSequence.html">HouseholderSequence</a> &amp;other)</td></tr>
<tr class="memdesc:aa4b1b93fff4d5c79342974d9d2a9eec8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:aa4b1b93fff4d5c79342974d9d2a9eec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6aeede87ed8dac452f4fa8b4f45c3f2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#af6aeede87ed8dac452f4fa8b4f45c3f2">HouseholderSequence</a> (const VectorsType &amp;v, const CoeffsType &amp;h)</td></tr>
<tr class="memdesc:af6aeede87ed8dac452f4fa8b4f45c3f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="classEigen_1_1HouseholderSequence.html#af6aeede87ed8dac452f4fa8b4f45c3f2">More...</a><br /></td></tr>
<tr class="separator:af6aeede87ed8dac452f4fa8b4f45c3f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02014cb7359500d5bd51b6f8ee4d34fc"><td class="memItemLeft" align="right" valign="top"><a id="a02014cb7359500d5bd51b6f8ee4d34fc"></a>
<a class="el" href="classEigen_1_1HouseholderSequence.html">AdjointReturnType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#a02014cb7359500d5bd51b6f8ee4d34fc">inverse</a> () const</td></tr>
<tr class="memdesc:a02014cb7359500d5bd51b6f8ee4d34fc"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classEigen_1_1Inverse.html" title="Expression of the inverse of another expression.">Inverse</a> of the Householder sequence (equals the adjoint). <br /></td></tr>
<tr class="separator:a02014cb7359500d5bd51b6f8ee4d34fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac62fad812f3893f237378fe70e55bf66"><td class="memItemLeft" align="right" valign="top"><a id="ac62fad812f3893f237378fe70e55bf66"></a>
<a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#ac62fad812f3893f237378fe70e55bf66">length</a> () const</td></tr>
<tr class="memdesc:ac62fad812f3893f237378fe70e55bf66"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the length of the Householder sequence. <br /></td></tr>
<tr class="separator:ac62fad812f3893f237378fe70e55bf66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac57e5a22f1646e04a4f8b4cba3825928"><td class="memTemplParams" colspan="2">template&lt;typename OtherDerived &gt; </td></tr>
<tr class="memitem:ac57e5a22f1646e04a4f8b4cba3825928"><td class="memTemplItemLeft" align="right" valign="top">internal::matrix_type_times_scalar_type&lt; Scalar, OtherDerived &gt;::Type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#ac57e5a22f1646e04a4f8b4cba3825928">operator*</a> (const <a class="el" href="classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; OtherDerived &gt; &amp;other) const</td></tr>
<tr class="memdesc:ac57e5a22f1646e04a4f8b4cba3825928"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the product of a Householder sequence with a matrix.  <a href="classEigen_1_1HouseholderSequence.html#ac57e5a22f1646e04a4f8b4cba3825928">More...</a><br /></td></tr>
<tr class="separator:ac57e5a22f1646e04a4f8b4cba3825928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0bef8081be2c21062c1ae015bd1c1c0"><td class="memItemLeft" align="right" valign="top">EIGEN_CONSTEXPR <a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#ac0bef8081be2c21062c1ae015bd1c1c0">rows</a> () const EIGEN_NOEXCEPT</td></tr>
<tr class="memdesc:ac0bef8081be2c21062c1ae015bd1c1c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of rows of transformation viewed as a matrix.  <a href="classEigen_1_1HouseholderSequence.html#ac0bef8081be2c21062c1ae015bd1c1c0">More...</a><br /></td></tr>
<tr class="separator:ac0bef8081be2c21062c1ae015bd1c1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30cc06d5b2ca4b7dcf5fcd53313d25fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1HouseholderSequence.html">HouseholderSequence</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#a30cc06d5b2ca4b7dcf5fcd53313d25fc">setLength</a> (<a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a> <a class="el" href="classEigen_1_1HouseholderSequence.html#ac62fad812f3893f237378fe70e55bf66">length</a>)</td></tr>
<tr class="memdesc:a30cc06d5b2ca4b7dcf5fcd53313d25fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the length of the Householder sequence.  <a href="classEigen_1_1HouseholderSequence.html#a30cc06d5b2ca4b7dcf5fcd53313d25fc">More...</a><br /></td></tr>
<tr class="separator:a30cc06d5b2ca4b7dcf5fcd53313d25fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d8d996ce1085fd977850988735739f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1HouseholderSequence.html">HouseholderSequence</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#a2d8d996ce1085fd977850988735739f0">setShift</a> (<a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a> <a class="el" href="classEigen_1_1HouseholderSequence.html#a34482bfad5563fd8a8a4264db76ac917">shift</a>)</td></tr>
<tr class="memdesc:a2d8d996ce1085fd977850988735739f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the shift of the Householder sequence.  <a href="classEigen_1_1HouseholderSequence.html#a2d8d996ce1085fd977850988735739f0">More...</a><br /></td></tr>
<tr class="separator:a2d8d996ce1085fd977850988735739f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34482bfad5563fd8a8a4264db76ac917"><td class="memItemLeft" align="right" valign="top"><a id="a34482bfad5563fd8a8a4264db76ac917"></a>
<a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#a34482bfad5563fd8a8a4264db76ac917">shift</a> () const</td></tr>
<tr class="memdesc:a34482bfad5563fd8a8a4264db76ac917"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the shift of the Householder sequence. <br /></td></tr>
<tr class="separator:a34482bfad5563fd8a8a4264db76ac917"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0959abb2cfa16c9df2e5782e721811c"><td class="memItemLeft" align="right" valign="top"><a id="ae0959abb2cfa16c9df2e5782e721811c"></a>
<a class="el" href="classEigen_1_1HouseholderSequence.html">TransposeReturnType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1HouseholderSequence.html#ae0959abb2cfa16c9df2e5782e721811c">transpose</a> () const</td></tr>
<tr class="memdesc:ae0959abb2cfa16c9df2e5782e721811c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transpose of the Householder sequence. <br /></td></tr>
<tr class="separator:ae0959abb2cfa16c9df2e5782e721811c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_structEigen_1_1EigenBase"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structEigen_1_1EigenBase')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structEigen_1_1EigenBase.html">Eigen::EigenBase&lt; HouseholderSequence&lt; VectorsType, CoeffsType, Side &gt; &gt;</a></td></tr>
<tr class="memitem:a2d768a9877f5f69f49432d447b552bfe inherit pub_methods_structEigen_1_1EigenBase"><td class="memItemLeft" align="right" valign="top">EIGEN_CONSTEXPR <a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structEigen_1_1EigenBase.html#a2d768a9877f5f69f49432d447b552bfe">cols</a> () const EIGEN_NOEXCEPT</td></tr>
<tr class="separator:a2d768a9877f5f69f49432d447b552bfe inherit pub_methods_structEigen_1_1EigenBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fbabe7f12bcbfba3b9a448b1f5e46fa inherit pub_methods_structEigen_1_1EigenBase"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1HouseholderSequence.html">HouseholderSequence</a>&lt; VectorsType, CoeffsType, Side &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structEigen_1_1EigenBase.html#a1fbabe7f12bcbfba3b9a448b1f5e46fa">derived</a> ()</td></tr>
<tr class="separator:a1fbabe7f12bcbfba3b9a448b1f5e46fa inherit pub_methods_structEigen_1_1EigenBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd4f3f1c57b7594b96a7e30f2974ea2e inherit pub_methods_structEigen_1_1EigenBase"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classEigen_1_1HouseholderSequence.html">HouseholderSequence</a>&lt; VectorsType, CoeffsType, Side &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structEigen_1_1EigenBase.html#afd4f3f1c57b7594b96a7e30f2974ea2e">derived</a> () const</td></tr>
<tr class="separator:afd4f3f1c57b7594b96a7e30f2974ea2e inherit pub_methods_structEigen_1_1EigenBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac22eb0695d00edd7d4a3b2d0a98b81c2 inherit pub_methods_structEigen_1_1EigenBase"><td class="memItemLeft" align="right" valign="top">EIGEN_CONSTEXPR <a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structEigen_1_1EigenBase.html#ac22eb0695d00edd7d4a3b2d0a98b81c2">rows</a> () const EIGEN_NOEXCEPT</td></tr>
<tr class="separator:ac22eb0695d00edd7d4a3b2d0a98b81c2 inherit pub_methods_structEigen_1_1EigenBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae106171b6fefd3f7af108a8283de36c9 inherit pub_methods_structEigen_1_1EigenBase"><td class="memItemLeft" align="right" valign="top">EIGEN_CONSTEXPR <a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structEigen_1_1EigenBase.html#ae106171b6fefd3f7af108a8283de36c9">size</a> () const EIGEN_NOEXCEPT</td></tr>
<tr class="separator:ae106171b6fefd3f7af108a8283de36c9 inherit pub_methods_structEigen_1_1EigenBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_types_structEigen_1_1EigenBase"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structEigen_1_1EigenBase')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="structEigen_1_1EigenBase.html">Eigen::EigenBase&lt; HouseholderSequence&lt; VectorsType, CoeffsType, Side &gt; &gt;</a></td></tr>
<tr class="memitem:a554f30542cc2316add4b1ea0a492ff02 inherit pub_types_structEigen_1_1EigenBase"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceEigen.html#a62e77e0933482dafde8fe197d9a2cfde">Eigen::Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a></td></tr>
<tr class="memdesc:a554f30542cc2316add4b1ea0a492ff02 inherit pub_types_structEigen_1_1EigenBase"><td class="mdescLeft">&#160;</td><td class="mdescRight">The interface type of indices.  <a href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">More...</a><br /></td></tr>
<tr class="separator:a554f30542cc2316add4b1ea0a492ff02 inherit pub_types_structEigen_1_1EigenBase"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="af6aeede87ed8dac452f4fa8b4f45c3f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6aeede87ed8dac452f4fa8b4f45c3f2">&#9670;&nbsp;</a></span>HouseholderSequence()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename VectorsType , typename CoeffsType , int Side&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1HouseholderSequence.html">Eigen::HouseholderSequence</a>&lt; VectorsType, CoeffsType, Side &gt;::<a class="el" href="classEigen_1_1HouseholderSequence.html">HouseholderSequence</a> </td>
          <td>(</td>
          <td class="paramtype">const VectorsType &amp;&#160;</td>
          <td class="paramname"><em>v</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const CoeffsType &amp;&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">v</td><td>Matrix containing the essential parts of the Householder vectors </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">h</td><td>Vector containing the Householder coefficients</td></tr>
  </table>
  </dd>
</dl>
<p>Constructs the Householder sequence with coefficients given by <code>h</code> and vectors given by <code>v</code>. The i-th Householder coefficient \( h_i \) is given by <code>h(i)</code> and the essential part of the i-th Householder vector \( v_i \) is given by <code>v(k,i)</code> with <code>k</code> &gt; <code>i</code> (the subdiagonal part of the i-th column). If <code>v</code> has fewer columns than rows, then the Householder sequence contains as many Householder reflections as there are columns.</p>
<dl class="section note"><dt>Note</dt><dd>The HouseholderSequence object stores <code>v</code> and <code>h</code> by reference.</dd></dl>
<p>Example: </p><div class="fragment"><div class="line"><a class="code" href="group__matrixtypedefs.html#ga84e9fd068879d808012bb6d5dbfecb17">Matrix3d</a> v = <a class="code" href="classEigen_1_1DenseBase.html#ae814abb451b48ed872819192dc188c19">Matrix3d::Random</a>();</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The matrix v is:&quot;</span> &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; v &lt;&lt; endl;</div>
<div class="line"> </div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#gaabb0b4639dc0b48e691e02e95873b0f1">Vector3d</a> v0(1, v(1,0), v(2,0));</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The first Householder vector is: v_0 = &quot;</span> &lt;&lt; v0.transpose() &lt;&lt; endl;</div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#gaabb0b4639dc0b48e691e02e95873b0f1">Vector3d</a> v1(0, 1, v(2,1));</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The second Householder vector is: v_1 = &quot;</span> &lt;&lt; v1.transpose()  &lt;&lt; endl;</div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#gaabb0b4639dc0b48e691e02e95873b0f1">Vector3d</a> v2(0, 0, 1);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The third Householder vector is: v_2 = &quot;</span> &lt;&lt; v2.transpose() &lt;&lt; endl;</div>
<div class="line"> </div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#gaabb0b4639dc0b48e691e02e95873b0f1">Vector3d</a> h = <a class="code" href="classEigen_1_1DenseBase.html#ae814abb451b48ed872819192dc188c19">Vector3d::Random</a>();</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The Householder coefficients are: h = &quot;</span> &lt;&lt; h.transpose() &lt;&lt; endl;</div>
<div class="line"> </div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#ga84e9fd068879d808012bb6d5dbfecb17">Matrix3d</a> H0 = <a class="code" href="classEigen_1_1MatrixBase.html#a98bb9a0f705c6dfde85b0bfff31bf88f">Matrix3d::Identity</a>() - h(0) * v0 * v0.adjoint();</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The first Householder reflection is represented by H_0 = &quot;</span> &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; H0 &lt;&lt; endl;</div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#ga84e9fd068879d808012bb6d5dbfecb17">Matrix3d</a> H1 = <a class="code" href="classEigen_1_1MatrixBase.html#a98bb9a0f705c6dfde85b0bfff31bf88f">Matrix3d::Identity</a>() - h(1) * v1 * v1.adjoint();</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The second Householder reflection is represented by H_1 = &quot;</span> &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; H1 &lt;&lt; endl;</div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#ga84e9fd068879d808012bb6d5dbfecb17">Matrix3d</a> H2 = <a class="code" href="classEigen_1_1MatrixBase.html#a98bb9a0f705c6dfde85b0bfff31bf88f">Matrix3d::Identity</a>() - h(2) * v2 * v2.adjoint();</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The third Householder reflection is represented by H_2 = &quot;</span> &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; H2 &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;Their product is H_0 H_1 H_2 = &quot;</span> &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; H0 * H1 * H2 &lt;&lt; endl;</div>
<div class="line"> </div>
<div class="line">HouseholderSequence&lt;Matrix3d, Vector3d&gt; hhSeq(v, h);</div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#ga84e9fd068879d808012bb6d5dbfecb17">Matrix3d</a> hhSeqAsMatrix(hhSeq);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;If we construct a HouseholderSequence from v and h&quot;</span> &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;and convert it to a matrix, we get:&quot;</span> &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; hhSeqAsMatrix &lt;&lt; endl;</div>
<div class="ttc" id="aclassEigen_1_1DenseBase_html_ae814abb451b48ed872819192dc188c19"><div class="ttname"><a href="classEigen_1_1DenseBase.html#ae814abb451b48ed872819192dc188c19">Eigen::DenseBase::Random</a></div><div class="ttdeci">static const RandomReturnType Random()</div><div class="ttdef"><b>Definition:</b> Random.h:114</div></div>
<div class="ttc" id="aclassEigen_1_1MatrixBase_html_a98bb9a0f705c6dfde85b0bfff31bf88f"><div class="ttname"><a href="classEigen_1_1MatrixBase.html#a98bb9a0f705c6dfde85b0bfff31bf88f">Eigen::MatrixBase::Identity</a></div><div class="ttdeci">static const IdentityReturnType Identity()</div><div class="ttdef"><b>Definition:</b> CwiseNullaryOp.h:801</div></div>
<div class="ttc" id="agroup__matrixtypedefs_html_ga84e9fd068879d808012bb6d5dbfecb17"><div class="ttname"><a href="group__matrixtypedefs.html#ga84e9fd068879d808012bb6d5dbfecb17">Eigen::Matrix3d</a></div><div class="ttdeci">Matrix&lt; double, 3, 3 &gt; Matrix3d</div><div class="ttdoc">3×3 matrix of type double.</div><div class="ttdef"><b>Definition:</b> Matrix.h:501</div></div>
<div class="ttc" id="agroup__matrixtypedefs_html_gaabb0b4639dc0b48e691e02e95873b0f1"><div class="ttname"><a href="group__matrixtypedefs.html#gaabb0b4639dc0b48e691e02e95873b0f1">Eigen::Vector3d</a></div><div class="ttdeci">Matrix&lt; double, 3, 1 &gt; Vector3d</div><div class="ttdoc">3×1 vector of type double.</div><div class="ttdef"><b>Definition:</b> Matrix.h:501</div></div>
</div><!-- fragment --><p> Output: </p><pre class="fragment">The matrix v is:
  0.68  0.597  -0.33
-0.211  0.823  0.536
 0.566 -0.605 -0.444
The first Householder vector is: v_0 =      1 -0.211  0.566
The second Householder vector is: v_1 =      0      1 -0.605
The third Householder vector is: v_2 = 0 0 1
The Householder coefficients are: h =   0.108 -0.0452   0.258
The first Householder reflection is represented by H_0 = 
  0.892  0.0228 -0.0611
 0.0228   0.995  0.0129
-0.0611  0.0129   0.965
The second Householder reflection is represented by H_1 = 
      1       0       0
      0    1.05 -0.0273
      0 -0.0273    1.02
The third Householder reflection is represented by H_2 = 
    1     0     0
    0     1     0
    0     0 0.742
Their product is H_0 H_1 H_2 = 
  0.892  0.0255 -0.0466
 0.0228    1.04 -0.0105
-0.0611 -0.0129   0.728
If we construct a HouseholderSequence from v and h
and convert it to a matrix, we get:
  0.892  0.0255 -0.0466
 0.0228    1.04 -0.0105
-0.0611 -0.0129   0.728
</pre><dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1HouseholderSequence.html#a30cc06d5b2ca4b7dcf5fcd53313d25fc" title="Sets the length of the Householder sequence.">setLength()</a>, <a class="el" href="classEigen_1_1HouseholderSequence.html#a2d8d996ce1085fd977850988735739f0" title="Sets the shift of the Householder sequence.">setShift()</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a35475457c973a66539417b61449cbf5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35475457c973a66539417b61449cbf5a">&#9670;&nbsp;</a></span>cols()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename VectorsType , typename CoeffsType , int Side&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">EIGEN_CONSTEXPR <a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a> <a class="el" href="classEigen_1_1HouseholderSequence.html">Eigen::HouseholderSequence</a>&lt; VectorsType, CoeffsType, Side &gt;::cols </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Number of columns of transformation viewed as a matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>Number of columns</dd></dl>
<p>This equals the dimension of the space that the transformation acts on. </p>

</div>
</div>
<a id="a97f91bb6def2ce1a84e44df2360021ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97f91bb6def2ce1a84e44df2360021ab">&#9670;&nbsp;</a></span>conjugateIf()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename VectorsType , typename CoeffsType , int Side&gt; </div>
<div class="memtemplate">
template&lt;bool Cond&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::conditional_t&lt;Cond,<a class="el" href="classEigen_1_1HouseholderSequence.html">ConjugateReturnType</a>,<a class="el" href="classEigen_1_1HouseholderSequence.html">ConstHouseholderSequence</a>&gt; <a class="el" href="classEigen_1_1HouseholderSequence.html">Eigen::HouseholderSequence</a>&lt; VectorsType, CoeffsType, Side &gt;::conjugateIf </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>an expression of the complex conjugate of <code>*this</code> if Cond==true, returns <code>*this</code> otherwise. </dd></dl>

</div>
</div>
<a id="ac91cf37b0cbea9e504c89e021fd289ba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac91cf37b0cbea9e504c89e021fd289ba">&#9670;&nbsp;</a></span>essentialVector()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename VectorsType , typename CoeffsType , int Side&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classEigen_1_1Block.html">EssentialVectorType</a> <a class="el" href="classEigen_1_1HouseholderSequence.html">Eigen::HouseholderSequence</a>&lt; VectorsType, CoeffsType, Side &gt;::essentialVector </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a>&#160;</td>
          <td class="paramname"><em>k</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Essential part of a Householder vector. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">k</td><td>Index of Householder reflection </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vector containing non-trivial entries of k-th Householder vector</dd></dl>
<p>This function returns the essential part of the Householder vector \( v_i \). This is a vector of length \( n-i \) containing the last \( n-i \) entries of the vector </p><p class="formulaDsp">
\[ v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ]. \]
</p>
<p> The index \( i \) equals <code>k</code> + <a class="el" href="classEigen_1_1HouseholderSequence.html#a34482bfad5563fd8a8a4264db76ac917" title="Returns the shift of the Householder sequence.">shift()</a>, corresponding to the k-th column of the matrix <code>v</code> passed to the constructor.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1HouseholderSequence.html#a2d8d996ce1085fd977850988735739f0" title="Sets the shift of the Householder sequence.">setShift()</a>, <a class="el" href="classEigen_1_1HouseholderSequence.html#a34482bfad5563fd8a8a4264db76ac917" title="Returns the shift of the Householder sequence.">shift()</a> </dd></dl>

</div>
</div>
<a id="ac57e5a22f1646e04a4f8b4cba3825928"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac57e5a22f1646e04a4f8b4cba3825928">&#9670;&nbsp;</a></span>operator*()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename VectorsType , typename CoeffsType , int Side&gt; </div>
<div class="memtemplate">
template&lt;typename OtherDerived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">internal::matrix_type_times_scalar_type&lt;Scalar, OtherDerived&gt;::Type <a class="el" href="classEigen_1_1HouseholderSequence.html">Eigen::HouseholderSequence</a>&lt; VectorsType, CoeffsType, Side &gt;::operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; OtherDerived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Computes the product of a Householder sequence with a matrix. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>Matrix being multiplied. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Expression object representing the product.</dd></dl>
<p>This function computes \( HM \) where \( H \) is the Householder sequence represented by <code>*this</code> and \( M \) is the matrix <code>other</code>. </p>

</div>
</div>
<a id="ac0bef8081be2c21062c1ae015bd1c1c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0bef8081be2c21062c1ae015bd1c1c0">&#9670;&nbsp;</a></span>rows()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename VectorsType , typename CoeffsType , int Side&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">EIGEN_CONSTEXPR <a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a> <a class="el" href="classEigen_1_1HouseholderSequence.html">Eigen::HouseholderSequence</a>&lt; VectorsType, CoeffsType, Side &gt;::rows </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Number of rows of transformation viewed as a matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>Number of rows</dd></dl>
<p>This equals the dimension of the space that the transformation acts on. </p>

</div>
</div>
<a id="a30cc06d5b2ca4b7dcf5fcd53313d25fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30cc06d5b2ca4b7dcf5fcd53313d25fc">&#9670;&nbsp;</a></span>setLength()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename VectorsType , typename CoeffsType , int Side&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1HouseholderSequence.html">HouseholderSequence</a>&amp; <a class="el" href="classEigen_1_1HouseholderSequence.html">Eigen::HouseholderSequence</a>&lt; VectorsType, CoeffsType, Side &gt;::setLength </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a>&#160;</td>
          <td class="paramname"><em>length</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the length of the Householder sequence. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>New value for the length.</td></tr>
  </table>
  </dd>
</dl>
<p>By default, the length \( n \) of the Householder sequence \( H = H_0 H_1 \ldots H_{n-1} \) is set to the number of columns of the matrix <code>v</code> passed to the constructor, or the number of rows if that is smaller. After this function is called, the length equals <code>length</code>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1HouseholderSequence.html#ac62fad812f3893f237378fe70e55bf66" title="Returns the length of the Householder sequence.">length()</a> </dd></dl>

</div>
</div>
<a id="a2d8d996ce1085fd977850988735739f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d8d996ce1085fd977850988735739f0">&#9670;&nbsp;</a></span>setShift()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename VectorsType , typename CoeffsType , int Side&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1HouseholderSequence.html">HouseholderSequence</a>&amp; <a class="el" href="classEigen_1_1HouseholderSequence.html">Eigen::HouseholderSequence</a>&lt; VectorsType, CoeffsType, Side &gt;::setShift </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structEigen_1_1EigenBase.html#a554f30542cc2316add4b1ea0a492ff02">Index</a>&#160;</td>
          <td class="paramname"><em>shift</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the shift of the Householder sequence. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">shift</td><td>New value for the shift.</td></tr>
  </table>
  </dd>
</dl>
<p>By default, a HouseholderSequence object represents \( H = H_0 H_1 \ldots H_{n-1} \) and the i-th column of the matrix <code>v</code> passed to the constructor corresponds to the i-th Householder reflection. After this function is called, the object represents \( H = H_{\mathrm{shift}} H_{\mathrm{shift}+1} \ldots H_{n-1} \) and the i-th column of <code>v</code> corresponds to the (shift+i)-th Householder reflection.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1HouseholderSequence.html#a34482bfad5563fd8a8a4264db76ac917" title="Returns the shift of the Householder sequence.">shift()</a> </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="HouseholderSequence_8h_source.html">HouseholderSequence.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceEigen.html">Eigen</a></li><li class="navelem"><a class="el" href="classEigen_1_1HouseholderSequence.html">HouseholderSequence</a></li>
    <li class="footer">Generated on Thu Apr 21 2022 13:07:55 for Eigen by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
